#pragma once

#pragma managed

#include "..\..\BWAPI\Unit.h"
#include "..\Enum\BuildType.h"

using namespace BroodWar::Api;
using namespace BroodWar::Api::Enum;

namespace BroodWar
{
	namespace Addon
	{
		ref class MacroTask;

		public interface class IBuildOrderManager
		{
			void OnFrame();
			void Draw(int x, int y);
			MacroTask^ Build(int count, Api::Enum::UnitType t, int priority, TilePosition^ seedLocation);
			MacroTask^ Build(int count, Api::Enum::UnitType t, int priority);
			MacroTask^ BuildAdditional(int count, Api::Enum::UnitType t, int priority, TilePosition^ seedLocation);
			MacroTask^ BuildAdditional(int count, Api::Enum::UnitType t, int priority);
			MacroTask^ BuildAdditional(int count, BuildType t, int priority, TilePosition^ seedLocation);
			MacroTask^ BuildAdditional(int count, BuildType t, int priority);
			MacroTask^ Research(TechType t, int priority);
			MacroTask^ Upgrade(int level, UpgradeType t, int priority);
			void DeleteMacroTask(MacroTask^ mt);
		};
	}
}
